# pip install bs4
#
# bs4 进行数据解析
#    - 数据解析的原理：
#           - 1. 标签定位
#           - 2. 提取标签、标签属性中存储的数据值
#    - bs4 数据解析的原理：
#           - 1. 实例化一个 BeautifulSoup 对象，并且将页面源码数据加载到该对象中。
#           - 2. 通过调用 BeautifulSoup 对象中相关的属性或者方法进行标签定位和数据提取。

import csv

# 1. 拿到页面源代码
# 2. 使用 bs4 进行解析，拿到数据

import requests
from bs4 import BeautifulSoup

if __name__ == "__main__":
    url = 'http://www.xinfadi.com.cn/priceDetail.html'
    resp = requests.get(url)
    resp.close()
    # print(resp.text)

    # 解析数据
    # 1. 将页面源代码交给 BeautifulSoup 进行处理，生成 bs 对象
    page = BeautifulSoup(resp.text, 'html.parser')

    # 2. 从 bs 对象中查找数据
    # find(标签名, 属性 = '属性值')
    # find_all(标签名, 属性 = '属性值')
    table = page.find('table', border="0")  # class 是 python 的关键字
    print(table)

    file = open('../爬虫文件/菜价.csv', mode='w', encoding='utf-8')
    csvwriter = csv.writer(file)

    # 拿到所有数据行
    trs = table.find_all('tr')[0:]
    for tr in trs:
        ths = tr.find_all('th')  # 拿到每行中所有的 th
        th0 = ths[0].text  # .text 表示拿到被标签标记的内容
        th1 = ths[1].text  # .text 表示拿到被标签标记的内容
        th2 = ths[2].text  # .text 表示拿到被标签标记的内容
        th3 = ths[3].text  # .text 表示拿到被标签标记的内容
        th4 = ths[4].text  # .text 表示拿到被标签标记的内容
        th5 = ths[5].text  # .text 表示拿到被标签标记的内容
        th6 = ths[6].text  # .text 表示拿到被标签标记的内容
        th7 = ths[7].text  # .text 表示拿到被标签标记的内容
        th8 = ths[8].text  # .text 表示拿到被标签标记的内容
        th9 = ths[9].text  # .text 表示拿到被标签标记的内容
        print(th0, th1, th2, th3, th4, th5, th6, th7, th8, th9)
        csvwriter.writerow([th0, th1, th2, th3, th4, th5, th6, th7, th8, th9])

    file.close()